home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / cgghrd.z / cgghrd
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))                                                          CCCCGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CGGHRD - reduce a pair of complex matrices (A,B) to generalized upper
  10.      Hessenberg form using unitary transformations, where A is a general
  11.      matrix and B is upper triangular
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE CGGHRD( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z,
  15.                         LDZ, INFO )
  16.  
  17.          CHARACTER      COMPQ, COMPZ
  18.  
  19.          INTEGER        IHI, ILO, INFO, LDA, LDB, LDQ, LDZ, N
  20.  
  21.          COMPLEX        A( LDA, * ), B( LDB, * ), Q( LDQ, * ), Z( LDZ, * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      CGGHRD reduces a pair of complex matrices (A,B) to generalized upper
  25.      Hessenberg form using unitary transformations, where A is a general
  26.      matrix and B is upper triangular:  Q' * A * Z = H and Q' * B * Z = T,
  27.      where H is upper Hessenberg, T is upper triangular, and Q and Z are
  28.      unitary, and ' means conjugate transpose.
  29.  
  30.      The unitary matrices Q and Z are determined as products of Givens
  31.      rotations.  They may either be formed explicitly, or they may be
  32.      postmultiplied into input matrices Q1 and Z1, so that
  33.  
  34.           Q1 * A * Z1' = (Q1*Q) * H * (Z1*Z)'
  35.           Q1 * B * Z1' = (Q1*Q) * T * (Z1*Z)'
  36.  
  37.  
  38. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  39.      COMPQ   (input) CHARACTER*1
  40.              = 'N': do not compute Q;
  41.              = 'I': Q is initialized to the unit matrix, and the unitary
  42.              matrix Q is returned; = 'V': Q must contain a unitary matrix Q1
  43.              on entry, and the product Q1*Q is returned.
  44.  
  45.      COMPZ   (input) CHARACTER*1
  46.              = 'N': do not compute Q;
  47.              = 'I': Q is initialized to the unit matrix, and the unitary
  48.              matrix Q is returned; = 'V': Q must contain a unitary matrix Q1
  49.              on entry, and the product Q1*Q is returned.
  50.  
  51.      N       (input) INTEGER
  52.              The order of the matrices A and B.  N >= 0.
  53.  
  54.      ILO     (input) INTEGER
  55.              IHI     (input) INTEGER It is assumed that A is already upper
  56.              triangular in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI
  57.              are normally set by a previous call to CGGBAL; otherwise they
  58.              should be set to 1 and N respectively.  1 <= ILO <= IHI <= N, if
  59.              N > 0; ILO=1 and IHI=0, if N=0.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))                                                          CCCCGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      A       (input/output) COMPLEX array, dimension (LDA, N)
  75.              On entry, the N-by-N general matrix to be reduced.  On exit, the
  76.              upper triangle and the first subdiagonal of A are overwritten
  77.              with the upper Hessenberg matrix H, and the rest is set to zero.
  78.  
  79.      LDA     (input) INTEGER
  80.              The leading dimension of the array A.  LDA >= max(1,N).
  81.  
  82.      B       (input/output) COMPLEX array, dimension (LDB, N)
  83.              On entry, the N-by-N upper triangular matrix B.  On exit, the
  84.              upper triangular matrix T = Q' B Z.  The elements below the
  85.              diagonal are set to zero.
  86.  
  87.      LDB     (input) INTEGER
  88.              The leading dimension of the array B.  LDB >= max(1,N).
  89.  
  90.      Q       (input/output) COMPLEX array, dimension (LDQ, N)
  91.              If COMPQ='N':  Q is not referenced.
  92.              If COMPQ='I':  on entry, Q need not be set, and on exit it
  93.              contains the unitary matrix Q, where Q' is the product of the
  94.              Givens transformations which are applied to A and B on the left.
  95.              If COMPQ='V':  on entry, Q must contain a unitary matrix Q1, and
  96.              on exit this is overwritten by Q1*Q.
  97.  
  98.      LDQ     (input) INTEGER
  99.              The leading dimension of the array Q.  LDQ >= N if COMPQ='V' or
  100.              'I'; LDQ >= 1 otherwise.
  101.  
  102.      Z       (input/output) COMPLEX array, dimension (LDZ, N)
  103.              If COMPZ='N':  Z is not referenced.
  104.              If COMPZ='I':  on entry, Z need not be set, and on exit it
  105.              contains the unitary matrix Z, which is the product of the Givens
  106.              transformations which are applied to A and B on the right.  If
  107.              COMPZ='V':  on entry, Z must contain a unitary matrix Z1, and on
  108.              exit this is overwritten by Z1*Z.
  109.  
  110.      LDZ     (input) INTEGER
  111.              The leading dimension of the array Z.  LDZ >= N if COMPZ='V' or
  112.              'I'; LDZ >= 1 otherwise.
  113.  
  114.      INFO    (output) INTEGER
  115.              = 0:  successful exit.
  116.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  117.  
  118. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  119.      This routine reduces A to Hessenberg and B to triangular form by an
  120.      unblocked reduction, as described in _Matrix_Computations_, by Golub and
  121.      van Loan (Johns Hopkins Press).
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.